/**
 * for in, for of 
 * for in 按下标的方式迭代要迭代的数据
 * for of 按自定义的迭代器的方式迭代数据
 * 声明一个对象默认是没有实现迭代器的, 可以手动实现自定义的迭代器
*/

let obj = {
  a: 1, 
  b: 2
}

obj[Symbol.iterator] = function() {
  let i = 0
  return {
    next: function() {
      i++
      if (i < 10) {
        return {
          value: i,
          done: false
        }
      } else {
        return {
          value: '',
          done: true
        }
      }
    }
  }
}

for(let attr of obj) {
  console.log(attr)
}